import numpy as np
import matplotlib.pyplot as plt

# 设置不同浓度的辣椒素
concentrations = [0, 0.5, 1, 5, 10, 20, 50, 100]  # 单位：ppm
colors = ['gray', 'violet', 'lightblue', 'green', 'blue', 'purple', 'red', 'black']

# 生成频率数据
x = np.linspace(1.0, 2.0, 1000)

# 预定义两个特征峰位置
peak1_pos = 1.42
peak2_pos = 1.67

# 创建图形
plt.figure(figsize=(10, 6))

# 绘制不同浓度下的吸收谱线
for i, ppm in enumerate(concentrations):
    # 基线函数（模拟地沟油的基础吸收谱）
    baseline = 0.05 + 0.05 * x - 0.01 * x**2
    
    # 辣椒素的两个特征峰函数
    peak1 = 0.1 * (ppm / 100) * np.exp(-50 * (x - peak1_pos)**2)
    peak2 = 0.1 * (ppm / 100) * np.exp(-50 * (x - peak2_pos)**2)
    
    # 总吸收谱
    y = baseline + peak1 + peak2
    
    # 绘制曲线
    if ppm == 0:  # 无辣椒素情况用灰色表示
        plt.plot(x, y, '-', color=colors[i], alpha=0.5, label=f'{ppm} ppm')
    else:
        plt.plot(x, y, '-', color=colors[i], alpha=0.8, label=f'{ppm} ppm')

# 添加特征峰位置的竖虚线
plt.axvline(x=peak1_pos, color='k', linestyle='--', linewidth=1)
plt.axvline(x=peak2_pos, color='k', linestyle='--', linewidth=1)

# 图表设置
plt.xlabel('Frequency (THz)')
plt.ylabel('Absorption coefficient α(ν) (cm⁻¹)')
plt.title('Terahertz Spectroscopy of Chili Capsaicin in Oil')
plt.legend(loc='upper left', fontsize=8)
plt.show()